
package com.chuangan.releasetask.dto;

import lombok.Data;

import java.beans.Transient;
import java.util.HashMap;
import java.util.Map;

@Data
public class TransfersDTO
{
    // 与商户号关联应用(如微信公众号/小程序)的APPID
    private String mch_appid;

    // 微信支付分配的商户号
    private String mchid;
    
    // 商户名称, 如'XXX服务号'
    private String mch_name;

    // 商户订单号，需保持唯一性(只能是字母或者数字，不能包含有其他字符)
    private String partner_trade_no;

    // 商户appid下，某用户的openid
    private String openid;

    // NO_CHECK：不校验真实姓名 FORCE_CHECK：强校验真实姓名
    private String check_name = "NO_CHECK";

    // 企业付款金额，单位为元
    private int amount;
    
    // 随机字符串，不长于32位
    private String nonce_str;

    // 企业付款备注
    private String desc;
    
    private String appkey;

    // 发起者IP地址+该IP可传用户端或者服务端的IP。
    private String spbill_create_ip = "127.0.0.1";


    
    @Transient
    public Map<String, String> map()
    {
        Map<String, String> map = new HashMap<String, String>();
        map.put("mch_appid", this.mch_appid);
        map.put("mchid", this.mchid);
        map.put("mch_name", this.mch_name);
        map.put("openid", this.openid);
        map.put("amount", String.valueOf(this.amount));
        map.put("desc", this.desc);
        map.put("appkey", this.appkey);
        map.put("nonce_str", this.nonce_str);
        map.put("partner_trade_no", this.partner_trade_no);
        map.put("spbill_create_ip", this.spbill_create_ip);
        return map;
    }

    @Override
    public String toString()
    {
        StringBuilder sb = new StringBuilder();
        sb.append("[mch_appid]" + this.mch_appid);
        sb.append(",[mchid]" + this.mchid);
        sb.append(",[openid]" + this.openid);
        sb.append(",[amount]" + this.amount);
        sb.append(",[desc]" + this.desc);
        sb.append(",[partner_trade_no]" + this.partner_trade_no);
        sb.append(",[nonce_str]" + this.nonce_str);
        sb.append(",[spbill_create_ip]" + this.spbill_create_ip);
        sb.append(",[check_name]" + this.check_name);
        return sb.toString();
    }
}
